Обзор данных

Выгрузим данные о заведениях общественного питания Москвы из csv-файла в датафрейм и сохраним его в переменной places.

Выведем 10 строчек датафрейма places на экран.

Таблица содержит следующую информацию:

  1. «Средний счёт: 1000–1500 ₽»;
  2. «Цена чашки капучино: 130–220 ₽»;
  3. «Цена бокала пива: 400–600 ₽» и так далее.
  1. Если в строке указан ценовой диапазон из двух значений, в столбец войдёт медиана этих двух значений.
  2. Если в строке указано одно число - цена без диапазона, то в столбец войдёт это число.
  3. Если значения нет или оно не начинается с подстроки «Средний счёт», то в столбец ничего не войдёт.
  1. Если в строке указан ценовой диапазон из двух значений, в столбец войдёт медиана этих двух значений.
  2. Если в строке указано одно число - цена без диапазона, то в столбец войдёт это число.
  3. Если значения нет или оно не начинается с подстроки «Цена одной чашки капучино», то в столбец ничего не войдёт.
  1. 0 - заведение не является сетевым
  2. 1 - заведение является сетевым

Выведем основную информацию о датафрейме.

Таблица с исходными данными содержит 14 столбцов и 8406 строк. Обратим внимание, что в столбцах hours, price, avg_bill, middle_avg_bill, middle_coffee_cup и seats имеются пропущенные значения.

В исходных данных нет отрицательных значений. Обратим внимание на столбец middle_avg_bill, а именно на аномально максимальное значение этого столбца - 35000 рублей. Максимальное значение столбца seats - 1288 посадочных мест, также выглядит аномально большим.

Построим общую гистограмму для всех числовых столбцов таблицы.

Предобработка данных

Обработка дубликатов

Выведем перечень уникальных значений столбца name - название заведения.

Массив уникальных значений очень большой, поэтому мы не можем увидеть его целиком. Чтобы вывести все строки массива данных, воспользуемся опцией set_option - установки максимального количества строк на вывод. Сохраним уникальные названия заведений и их количество в переменной unique_values.

Теперь мы можем увидеть весь перечень уникальных значений. Для того, чтобы увидеть неявные дубликаты, отсортируем названия кафе в алфавитном порядке. Особое внимание обратим на наименования крупных сетевых заведений.

Все найденные нами неявные дубликаты в названиях крупных сетевых заведений сохраним в словаре implicit_duplicates, где ключами будут значения, которые мы хотим заменить. Затем заменим все значения из словаря в столбце name методом replace.

Также мы нашли аномальное наименование - 55.709201, 37.392257 - удалим его.

Для того, чтобы уменьшить список уникальных значений, приведем все названия заведений к нижнему регистру.

Изучим данные, которые хранят в себе столбцы category, district и price.

Удаление пропусков

Выведем количество пропущенных значений для каждого столбца.

Самое большое количество пропущенных значений содержит столбец middle_coffee_cup - цена одной чашки капучино. Меньше всего пропусков содержит столбец hours - режим работы заведений. Чтобы не искажать исходные данные оставим столбцы с пропущенными значениями без изменений.

Обработка аномальных значений

Посмотрим на столбцы с числовыми данными - middle_avg_bill, middle_coffee_cup и seats.

Изучим данные столбца middle_avg_bill - число с оценкой среднего чека.

Значения среднего чека около 0 рублей являются аномально маленькими. А значения чеков около 5000 рублей практически слились с нулем и являются редкими.

Изучим данные столбца middle_coffee_cup - цена одной чашки капучино.

Значения цен одной чашки капучино более 400 рублей являются редкими.

Изучим данные столбца seats - количество посадочных мест.

Значения около 0 являются аномальными, а количество посадочных мест около 700 являются редкими и аномально большими.

Создание новых столбцов

Создадим столбец street с названиями улиц из столбца с адресом.

Для того, чтобы получисть название улицы, необходимо использовать метод str.split(','), чтобы разбить строку адреса на список элементов, используя запятую в качестве разделителя. Затем мы выберем второй элемент из списка с помощью str[1], который содержит название улицы, и удалим пробелы в начале и конце строки с помощью str.strip().

Создадим столбец is_24/7 с обозначением, что заведение работает ежедневно и круглосуточно (24/7):

Исследовательский анализ данных

Категории заведений

Исследуем количество объектов общественного питания по категориям.

Мы построили диаграмму распределения количества заведений по категориям в абсолютных величинах. Теперь посмотрим на распределение заведений в относительных величинах, для этого построим круговую диаграмму.

Самое большое количество объектов общественного питания относятся к категории кафе - 2317 заведений или 28,2% от общего количества заведений, ресторанов немного меньше - 2010 заведений или 24,5%. Самое маленькое количество объектов относятся к категории - булочная - всего 244 заведения или 2,97%.

Количество посадочных мест по категориям

Исследуем количество посадочных мест в местах по категориям, для этого сохраним необходимые нам столбцы category и seats в переменной seats_category.

Узнаем среднее количество посадочных мест для каждой категории.

Самое большое среднее количество посадочных мест у категорий "ресторан" и "бар, паб" - 120 и 117 мест стоответственно, самое маленькое количество посадочных мест у категории "пиццерия" - 94 места. Стоит отметить, что у категорий "столовая", "кафе" и "булочная" среднее количество посадочных мест близко к категории "пиццерия".

Построим диаграмму размаха по количеству посадочных мест для каждой категории.

Рассмотрим график распределения посадочных мест по категориям заведений с полными данными. У всех категорий без исключения наблюдается большой диапазон выбросов по количеству посадочных мест. Особенно выделяются экстремальные выбросы у категорий: "кафе", "ресторан", "кофейня", "пиццерия" и "бар, паб" - более 640 посадочных мест. У таких категорий, как "пиццерия", "булочная" и "столовая" выбросов меньше, а экстремальные выбросы находятся на уровне около 620 посадочных мест. У категории "быстрое питание" диапазон выбросов самый маленький, а экстремальные значения находятся на уровне около 500 посадочных мест.

Рассмотрим график распределения посадочных мест по категориям заведений с ограниченными данными. Обратим внимание, что "нижний ус" у всех категорий, кроме категории "бар, паб", ограничен минимумом посадочных мест и находится около 0. У категории "бар, паб" минимальное количество посадочных мест находится около 10. Также отметим, что медиана у всех категорий, кроме "столовая", находится ближе к нижнему квартилю, это значит, что плотность распределения заведений с небольшим количеством посадочных мест выше, иными словами, преобладают заведения с небольшим количеством посадочных мест. У категории "столовая" медиана находится по середине между нижним и верхним квартилями, а значит плотность заведений по количеству посадочных мест распределена равномерно.

Самый большой размах наблюдается у категории "быстрое питание" - от 40 до 150 посадочных мест. Самый узкий диапазон наблюдается у категорий "кафе" и "столовая", большая часть значений количества посадочных мест находится в диапазоне от 40 до 120 мест.

Cоотношение сетевых и несетевых заведений

Посмотрим на соотношение сетевых и несетевых заведений. Информацию о том, является ли заведение сетевым хранится в столбце chain.

Количество несетевых заведений больше, чем сетевых и составляет 5078 заведений или 61,9%, количество сетевых заведений составляет 3126 или 38,1%.

Категории заведений, которые чаще всего являются сетевыми

Узнаем, какие категории заведений чаще являются сетевыми. Сохраним наши данные в переменной network_categories.

Чаще всего сетевыми заведениями стоновятся булочные - 62,3%. Вторую строчку по доли сетевых заведений делят между собой категории "пиццерия" и "кофейня" - 52,09 и 50,91% соответственно. Реже всего сетевыми заведениями становятся бары и пабы - всего 22,12%.

ТОП-15 популярных сетей в Москве

Найдём ТОП-15 сетей по количеству заведений в Москве и узнаем к какой категории заведений они относятся.

Посмотрим на ТОП-15 самых популярных заведений Москвы. В списке заведений есть знакомые нам сети, такие как: "шоколадница", "додо пицца", "яндекс лавка", "теремок" и "чайхана". Самое большое количество сетевых заведений относится к категории "кофейня", и только одна сеть "буханка" относится к категории "булочная".

Количество заведений каждой категории по районам Москвы

Узнаем и отобразим общее количество заведений и количество заведений каждой категории по районам, данные сохраним в переменной district_category_share.

В Москве девять округов, самое большое количество заведений находится в Центральном административном округе - 2225 заведений, самое маленькое количество в Северо-Западном административном округе - 394 заведений. В каждом районе самый большой процент заведений относятся к категориям "ресторан" и "кафе, меньше всего относятся к категориям "столовая" и "булочная".

Распределение средних рейтингов по категориям заведений

Посмотрим на распределение средних рейтингов по категориям заведений.

Глядя на график, мы можем разбить распределение рейтингов на четыре группы и сделать следующие выводы:

Картограмма со средним рейтингом заведений каждого района

Построим фоновую картограмму (хороплет) со средним рейтингом заведений каждого района. Границы районов Москвы, которые встречаются в датасете, хранятся в файле /datasets/admin_level_geomap.geojson.

Для каждого округа посчитаем медианный рейтинг зведений, которые находятся на его территории:

Самый высокий средний рейтинг заведений в Центральном административном округе Москвы - 4,4. Самый низкий средний рейтинг заведений в двух районах, в Северо-Восточном и Юго-Восточном административных округах - 4,1.

Отображение всех заведений на карте

Отобразим все заведения нашего датасета places на карте с помощью кластеров средствами библиотеки folium.

Мы отобразили на карте Москвы все заведения нашего датасета places. При нажатии на маркер места всплывает окошко с названием и рейтингом заведения.

ТОП-15 улиц по количеству заведений

Найдём ТОП-15 улиц по количеству заведений. Построим график распределения количества заведений и их категорий по этим улицам.

Самой популярной улицей является проспект Мира - 184 заведения, из которых 28,8% относятся к категории кафе. Замыкает наш список ТОП-15 - Алтуфьевское шоссе - 47 заведений, из которых 27,66% также относятся к категории кафе. В списке ТОП-15 улиц Москвы меньше всего есть заведений с категорией булочная, а самой популярной категорией является кафе.

Улицы, на которых находится только один объект общепита

Найдём улицы, на которых находится только один объект общепита и узнаем об этих заведениях по-больше.

Всего у нас 455 улиц, но которых находится только один объект общепита.

Среди "одиноких" заведений чаще всего они принадлежат к категории кафе, всего таких заведений - 400, большая часть находится в Центральном административном округе, в основном они работают ежедневно и круглосуточно, цены в основном средние и большая часть из них несетевых.

Количество объектов общественного питания по категориям для улиц с одним заведением

Самое большое количество объектов общественного питания относятся к категории "кафе" - 160 заведений или 35,2% от общего количества заведений для улиц с одним объектом. Самое маленькое количество объектов относятся к категории - булочная - всего 7 заведения или 1,54%.

Количество посадочных мест по категориям для улиц с одним заведением

Узнаем среднее количество посадочных мест для каждой категории.

Самое большое среднее количество посадочных мест у категории "столовая" - 80 мест, самое маленькое количество посадочных мест у категории "кафе" - 46 мест.

Соотношение сетевых и несетевых заведений для улиц с одиним объектом общественного питания

Посмотрим на соотношение сетевых и несетевых заведений.

Картограмма со средним чеком заведений каждого района

Построим фоновую картограмму (хороплет) со средним чеком заведений каждого района. Для каждого округа посчитаем медиану среднего чека заведений, которые находятся на его территории:

Самый высокий средний чек заведений в Центральном и Западном административных округах Москвы - 1000 рублей. Самый низкий средний чек заведений в Юго-Восточном административном округе - 475 рублей, Северо-Восточном и Южном административных округах - 500 рублей.

Узнаем как удалённость от центра влияет на цены в заведениях. У нас есть координаты местоположения заведений и координаты центра Москвы, следовательно мы можем рассчитать расстояние до центра. Для этого нам понадобиться библиотека geopy, которая содержит готовые функции для работы с геоданными. Мы сможем использовать функцию distance из модуля geopy.distance для вычисления расстояния между точками, заданными координатами широты и долготы.

Коэффициент корреляции равен -0,81. Средний чек заведений зависит от расстояния до центра, чем меньше расстояние до центра, тем больше средний чек.

Попробуем объяснить провал на 6, 10 и 17 километре. Посмотрим какое количество заведений присутствует на каждом километре.

На графике мы видим, что на 6 и 10 километре наблюдаются "провалы" по количеству заведений, следовательно это и повлияло на средний чек заведений на этих расстояниях. А вот "провал" среднего чека на 17 километре, мы объяснить не можем, так как количество заведений после 13 километра начинают падать. Вероятно, "провал" среднего чека на 17 километре связан с неполнотой наших данных.

Детализирование исследования: открытие кофейни

Основателям фонда «Shut Up and Take My Money» не даёт покоя успех сериала «Друзья». Их мечта - открыть такую же крутую и доступную, как «Central Perk», кофейню в Москве. Попробуем определить, осуществима ли мечта клиентов.

Количество кофеен и особенности их расположения

Узнаем количество кофеен в нашем датасете. Посмотрим как они распределяются по районам. Для этого создадим переменную coffee_house, в которой сохраним информацию только о кофейнях.

Узнаем соотношение количества кофеен к общему количеству заведений общественного питания.

Узнаем в каких районах кофеен больше всего.

Рекомендация

Самым перспективным районом для открытия кофейни является Северо-Западный административный округ, в этом районе самое маленькое количество кофеен - всего 60 заведений или 4,4% от общего количества кофеен.

Помотрим, как количество кофеен меняется в зависимости от расстояния до центра.

Мы можем сделать следующий вывод: чем меньше расстояние до центра, тем больше кофеен.

Узнаем, какое количество кофеен находится в Северно-Западном регионе в 10 километрах от центра города.

Рекомендация

На 10 километре от центра наблюдается "провал" по количеству кофеен. На таком расстоянии от центра находится 51 заведение. Открытие ещё одного кафе, там явно бы не помешало. С учётом первой рекомендации, если мы выбираем Северо-Западный регион и расстояние до центра 10 километров, то количество кофеен сокращается до 8 заведений.

Количество круглосуточных кофеен

Узнаем, есть ли в нашем датасете кофейни, которые работают круглосуточно.

Количество кофеен с круглосуточным графиком работы очень мало - 56 заведений или 4,07% от общего количества кофеен.

Рекомендация

Советую ориентироваться на график с ограниченным режимом работы. С учётом рекомендаций по местоположению кофейни, необходимо изучить график работы наших ближайших конкурентов, и по возможности открываться на 1 час раньше, а закрываться вместе с ними или на 15-30 минут позже.

Распределение рейтингов кофеен по районам

Посмотрим, какие у кофеен рейтинги, и как они распределяются по районам.

В Центральном и Северо-Западном административных округах самые высокие средние рейтинги кофеен - 4,33 и 4,31 соответственно. Самые низкие средние рейтинги кофеен в Западном административном округе - 4,19.

Посмотрим, как значание рейтинга маняется от растояния до центра города.

Мы обнаружили отрицательную умеренную связь между значением рейтинга и расстоянием до центра: чем ближе к центру, тем рейтинг заведения выше, но так может быть не всегда.

Обратим внимание, что в 10 километрах от центра высокий средний рейтинг кофеен, выше только в самом центре Москвы.

Рекомендация

С учётом рекомендаций по местоположению будущей кофейни, необходимо внимательно изучить наших конкурентов, потому что средний рейтинг заведений в Северо-Западном административном округе, а также в 10 километрах от центра города, один из самых высоких.

Отметим наши заведения маркерами на карте Москвы.

Рекомендация

При выборе места необходимо ориентироваться на высокую проходимость. Для открытия новой кофейни можно выбрать место в жилом комплексе, например на улице Демьяна Бедного или Новохорошевский проезд.

Cтоимость чашки капучино

Узнаем на какую стоимость чашки капучино стоит ориентироваться при открытии. Посмотрим на стоимость средней чашки капучино в зависимоти от района города.

Самая дорогая стоимость чашки капучино в Западном административном округе - 190 рублей, самая дешёвая в Восточном административном округе - 140 рублей. В Северо-Западном административном округе средняя цена одной чашки капучино стоит 161 рубль - практически "золотая середина" по стоимости между районами.

Глядя на график, мы можем сказать, что при отдалении от центра на 6 километров средняя стоимость чашки капучино будет падать, затем образутся некое плато до 15 километра, затем снова падение. Но на 18 и 19 километре, мы видим аномально высокую стоимость чашки капучино, такую же и большую стоимости чашки, чем в центре Москвы.

Мы можем сказать, что наблюдается отрицательная слабая связь, между средней стоимостью чашки капучино и расстоянием до центра.

Количество кофеен на 18 и 19 километре - 12 и 3 соответственно, вероятнее всего это и повлияло на такую высокую стоимость чашки капучино.

Рекомендация

С учетом рекомендаций по местоположению кофейни, обратим внимание на стоимость средней чашки капучино в Северо-Западном административном округе - 161 рубль, в 10 километрах от центра - 171 рубль. Стоимость средней чашки капучино по Москве - 173 рубля. С учётом вышеуказанных данных, рекомендуем установить стоимость чашки капучино - 170 рублей.

Презентация

Презентация

Общий вывод

На этапе предобработки данных мы проделали следующую работу:

  1. Обработали неявные дубликаты в столбце name - названия заведений.
  2. Обработали аномальные и редкие значения в столбцах middle_avg_bill, middle_coffee_cup и seats.
  3. Добавили новые столбцы:

Провели исследовательский анализ данных:

  1. Самое большое количество объектов относится к категории кафе - 2317 заведений или 28,2%;
  2. Самое маленькое количество объектов относится к категории булочная - 244 заведений или 2,97%.
  1. Самое большое среднее количество посадочных мест у категории ресторан - 120 мест;
  2. Самое маленькое среднее количество посадочных мест у категории пиццерия - 94 места;

Построили и изучили данные графика «ящик с усами» по количеству посадочных мест в разбивке по категориям. Для каждой категории заведений построили график и описали наши наблюдения.

  1. Доля несетевых заведений составляет 61,9%;
  2. Доля сетевых заведений составляет 38,1%.
  1. булочная - 62.30% процентов заведений стали сетевыми;
  2. пиццерия - 52.09% процентов заведений стали сетевыми;
  3. кофейня - 50.91% процентов заведений стали сетевыми.
  1. шоколадница - кофейня - 117 заведений;
  2. домино'с пицца - пиццерия - 75 заведений;
  3. додо пицца - пиццерия - 73 заведения;
  4. one price coffee - кофейня 68 заведений;
  5. яндекс лавка - ресторан - 67 заведений;
  6. cofix - кофейня - 64 заведения;
  7. prime - ресторан - 49 заведений;
  8. кофепорт - кофейня - 42 заведения;
  9. кулинарная лавка братьев караваевых - кафе - 39 заведений;
  10. теремок - ресторан - 34 заведения;
  11. cofefest - кофейня - 31 заведение;
  12. чайхана - кафе - 25 заведений;
  13. буханка - булочная - 25 заведений;
  14. drive café - кафе - 24 заведения;
  15. кофемания - кофейня - 21 заведение.
  1. Центральный административный округ - 2225 заведений, доля ресторан - 29,84%, доля булочная - 2,25%;
  2. Северный административный округ - 885 заведений, доля кафе - 26,44%, доля булочная - 4,07%;
  3. Северо-Восточный административный округ - 874 заведения, доля кафе - 29,86%, доля булочная - 2,97%;
  4. Южный административный округ - 853 заведения, доля кафе - 29,78%, доля булочная - 2,7%;
  5. Западный административный округ - 831 заведение, доля кафе - 28,16%, доля столовая - 2,77%;
  6. Восточный административный округ - 766 заведений, доля кафе - 33,81%, доля булочная - 3%;
  7. Юго-Западный административный округ - 696 заведения, доля кафе - 33,19%, доля столовая - 2,44%;
  8. Юго-Восточный административный округ - 680 заведений, доля кафе - 40,15%, доля булочная - 5,29%;
  9. Северо-Западный административный округ - 394 заведения, доля кафе - 27,92%, доля булочная - 3,05%.

Построили и изучили данные графика «ящик с усами» в разбивке по категориям. Для каждой категории заведений построили график и описали наши наблюдения. Распределение средних рейтингов очень похожи между следущими категориями:

  1. Самый высокий средний уровень заведений в Центральном административном округе - 4.4;
  2. Самый низкий средний уровень заведений в Северо-Восточном и Юго-Восточном административных округах - 4,1;
  1. проспект Мира - 184 заведения;
  2. Профсоюзная улица - 117 заведений;
  3. Ленинский проспект - 107 заведений;
  4. проспект Вернадского - 96 заведений;
  5. Ленинградский проспект - 95 заведений;
  6. Дмитровское шоссе - 86 заведений;
  7. Каширское шоссе - 76 заведений;
  8. Варшавское шоссе - 74 заведения;
  9. Ленинградское шоссе - 70 заведений;
  10. МКАД - 65 заведений;
  11. Люблинская улица - 58 заведений;
  12. улица Вавилова - 54 заведения;
  13. Кутузовский проспект - 53 заведения;
  14. улица Миклухо-Маклая - 48 заведений;
  15. Алтуфьевское шоссе - 47 заведений.

Самая популярная категория заведений среди ТОП-15 улиц в Москве является кафе, самая непопулярная является булочная.

  1. Самое большое количество объектов общественного питания относятся к категории "кафе" - 160 заведений или 35,2%;
  2. Самое большое среднее количество посадочных мест у категории "столовая" - 80 мест;
  3. Доля несетевых заведений составляет 71,9%.
  1. Самый высокий средний чек заведений в Центральном и Западном административных округах Москвы - 1000 рублей.
  2. Самый низкий средний чек заведений в Юго-Восточном административном округе - 475 рублей.

Исследовали, как средний чек заведений зависит от расстояния до центра

Провели детализированный исследовательский анализ данных: открытие кофейни

  1. Северо-Западный административный округ - 60 заведений;
  2. Юго-Восточный административный округ - 82 заведения;
  3. Юго-Западный административный округ - 95 заведений;
  4. Восточный административный округ - 100 заведений;
  5. Южный административный округ - 123 заведения;
  6. Западный административный округ - 147 заведений;
  7. Северо-Восточный административный округ - 157 заведений;
  8. Северный административный округ - 189 заведений;
  9. Центральный административный округ - 424 заведения.
  1. Самый высокий средний уровень кофеен в Центральном административном округе - 4.33;
  2. Самый низкий средний уровень кофеен в Западном административном округе - 4,19.
  1. Западный административный округ - 190 рублей;
  2. Центральный административный округ - 188 рублей;
  3. Юго-Западный административный округ - 185 рублей;
  4. Северный административный округ - 167 рублей;
  5. Северо-Восточный административный округ - 165 рублей;
  6. Северо-Западный административный округ - 161 рубль;
  7. Южный административный округ - 158 рублей;
  8. Юго-Восточный административный округ - 152 рубля;
  9. Восточный административный округ - 140 рублей.

Средняя стоимость чашки капучино в Москве - 173 рубля.

Рекомендации инвесторам в выборе подходящего места для заведения: самым переспективным местоположением для открытия кофейни является Северо-Западный административный округ, примерно в 10 километрах от центра. Также при выборе места, необходимо будет учесть высокую проходимость. При открытии кофейни стоит ориентироваться на стоимость чашки капучино - 170 рублей.